package com.xyz.FileTest.FileWrite;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class Main {
    public static void main(String[] args) throws IOException {
        writeFileByBite("out/production/IOLearning/com/xyz/FileTest/FileWrite/readme.txt");
        writeFileByBiteArray("out/production/IOLearning/com/xyz/FileTest/FileWrite/readme2.txt",
                "你好 java！",
                "UTF-8");
    }

    public static void writeFileByBite(String path) throws IOException {
        // 创建文件输出对象，用 抽象父类 OutputStream 的对象 output 进行引用
        OutputStream output = new FileOutputStream(path);
        // 调用输出流对象的 write 方法，将指定的 int 值写入文件
        output.write(72); // H
        output.write(101); // e
        output.write(108); // l
        output.write(108); // l
        output.write(111); // o
        output.write(10);
        output.write(230);
        output.write(181);
        output.write(139);
        output.write(232);
        output.write(175);
        output.write(149);
        // 写入完，需要关闭输出流，释放资源
        output.close();
    }

    // 通过字节数组来进行文件写入
    // 三个参数：
    // 1. path ： 指定文件的路径
    // 2. outputString: 要写入文件的内容字符串
    // 3. stringCode ：文本文件的编码
    public static void writeFileByBiteArray(String path,String outputString,String stringCode) throws IOException {
        try (OutputStream output = new FileOutputStream(path)) {
            output.write(outputString.getBytes(stringCode)); // Hello
        } // 编译器在此自动为我们写入finally并调用close()
    }
}

